package com.example.interview.reflect00.t2_constructors;

/**
 * 1:获取类对象 (3种方式)
 *  1.1 Class.forName("com.example.interview.reflect00.Student")（常用）
 *  1.2 Student.class
 *  1.3 new Student().getClass() // new Student();//这一new 产生一个Student对象，一个Class对象。
 *  在一个JVM中，一种类，只会有一个类对象存在。所以以上三种方式取出来的类对象，都是一样。（此处准确是在ClassLoader下,只有一个类对象）
 */
public class Student01 {

    //---------------构造方法-------------------
    //（默认的构造方法）
    Student01(String str){
        System.out.println("(默认)的构造方法 s = " + str);
    }

    //无参构造方法
    public Student01(){
        System.out.println("调用了公有、无参构造方法执行了。。。");
    }

    //有一个参数的构造方法
    public Student01(char name){
        System.out.println("姓名：" + name);
    }

    //有多个参数的构造方法
    public Student01(String name , int age){
        System.out.println("姓名："+name+"年龄："+ age);//这的执行效率有问题，以后解决。
    }

    //受保护的构造方法
    protected Student01(boolean n){
        System.out.println("受保护的构造方法 n = " + n);
    }

    //私有构造方法
    private Student01(int age){
        System.out.println("私有的构造方法   年龄："+ age);
    }

}
